package com.wust.eim.po;

import java.util.ArrayList;
import java.util.List;

public class TblApplyExperimentExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TblApplyExperimentExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andYidIsNull() {
            addCriterion("yid is null");
            return (Criteria) this;
        }

        public Criteria andYidIsNotNull() {
            addCriterion("yid is not null");
            return (Criteria) this;
        }

        public Criteria andYidEqualTo(String value) {
            addCriterion("yid =", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidNotEqualTo(String value) {
            addCriterion("yid <>", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidGreaterThan(String value) {
            addCriterion("yid >", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidGreaterThanOrEqualTo(String value) {
            addCriterion("yid >=", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidLessThan(String value) {
            addCriterion("yid <", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidLessThanOrEqualTo(String value) {
            addCriterion("yid <=", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidLike(String value) {
            addCriterion("yid like", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidNotLike(String value) {
            addCriterion("yid not like", value, "yid");
            return (Criteria) this;
        }

        public Criteria andYidIn(List<String> values) {
            addCriterion("yid in", values, "yid");
            return (Criteria) this;
        }

        public Criteria andYidNotIn(List<String> values) {
            addCriterion("yid not in", values, "yid");
            return (Criteria) this;
        }

        public Criteria andYidBetween(String value1, String value2) {
            addCriterion("yid between", value1, value2, "yid");
            return (Criteria) this;
        }

        public Criteria andYidNotBetween(String value1, String value2) {
            addCriterion("yid not between", value1, value2, "yid");
            return (Criteria) this;
        }

        public Criteria andSidIsNull() {
            addCriterion("sid is null");
            return (Criteria) this;
        }

        public Criteria andSidIsNotNull() {
            addCriterion("sid is not null");
            return (Criteria) this;
        }

        public Criteria andSidEqualTo(String value) {
            addCriterion("sid =", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidNotEqualTo(String value) {
            addCriterion("sid <>", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidGreaterThan(String value) {
            addCriterion("sid >", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidGreaterThanOrEqualTo(String value) {
            addCriterion("sid >=", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidLessThan(String value) {
            addCriterion("sid <", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidLessThanOrEqualTo(String value) {
            addCriterion("sid <=", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidLike(String value) {
            addCriterion("sid like", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidNotLike(String value) {
            addCriterion("sid not like", value, "sid");
            return (Criteria) this;
        }

        public Criteria andSidIn(List<String> values) {
            addCriterion("sid in", values, "sid");
            return (Criteria) this;
        }

        public Criteria andSidNotIn(List<String> values) {
            addCriterion("sid not in", values, "sid");
            return (Criteria) this;
        }

        public Criteria andSidBetween(String value1, String value2) {
            addCriterion("sid between", value1, value2, "sid");
            return (Criteria) this;
        }

        public Criteria andSidNotBetween(String value1, String value2) {
            addCriterion("sid not between", value1, value2, "sid");
            return (Criteria) this;
        }

        public Criteria andSubidIsNull() {
            addCriterion("subid is null");
            return (Criteria) this;
        }

        public Criteria andSubidIsNotNull() {
            addCriterion("subid is not null");
            return (Criteria) this;
        }

        public Criteria andSubidEqualTo(String value) {
            addCriterion("subid =", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidNotEqualTo(String value) {
            addCriterion("subid <>", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidGreaterThan(String value) {
            addCriterion("subid >", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidGreaterThanOrEqualTo(String value) {
            addCriterion("subid >=", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidLessThan(String value) {
            addCriterion("subid <", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidLessThanOrEqualTo(String value) {
            addCriterion("subid <=", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidLike(String value) {
            addCriterion("subid like", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidNotLike(String value) {
            addCriterion("subid not like", value, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidIn(List<String> values) {
            addCriterion("subid in", values, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidNotIn(List<String> values) {
            addCriterion("subid not in", values, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidBetween(String value1, String value2) {
            addCriterion("subid between", value1, value2, "subid");
            return (Criteria) this;
        }

        public Criteria andSubidNotBetween(String value1, String value2) {
            addCriterion("subid not between", value1, value2, "subid");
            return (Criteria) this;
        }

        public Criteria andSubScoreIsNull() {
            addCriterion("sub_score is null");
            return (Criteria) this;
        }

        public Criteria andSubScoreIsNotNull() {
            addCriterion("sub_score is not null");
            return (Criteria) this;
        }

        public Criteria andSubScoreEqualTo(String value) {
            addCriterion("sub_score =", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreNotEqualTo(String value) {
            addCriterion("sub_score <>", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreGreaterThan(String value) {
            addCriterion("sub_score >", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreGreaterThanOrEqualTo(String value) {
            addCriterion("sub_score >=", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreLessThan(String value) {
            addCriterion("sub_score <", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreLessThanOrEqualTo(String value) {
            addCriterion("sub_score <=", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreLike(String value) {
            addCriterion("sub_score like", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreNotLike(String value) {
            addCriterion("sub_score not like", value, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreIn(List<String> values) {
            addCriterion("sub_score in", values, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreNotIn(List<String> values) {
            addCriterion("sub_score not in", values, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreBetween(String value1, String value2) {
            addCriterion("sub_score between", value1, value2, "subScore");
            return (Criteria) this;
        }

        public Criteria andSubScoreNotBetween(String value1, String value2) {
            addCriterion("sub_score not between", value1, value2, "subScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreIsNull() {
            addCriterion("pre_score is null");
            return (Criteria) this;
        }

        public Criteria andPreScoreIsNotNull() {
            addCriterion("pre_score is not null");
            return (Criteria) this;
        }

        public Criteria andPreScoreEqualTo(String value) {
            addCriterion("pre_score =", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreNotEqualTo(String value) {
            addCriterion("pre_score <>", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreGreaterThan(String value) {
            addCriterion("pre_score >", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreGreaterThanOrEqualTo(String value) {
            addCriterion("pre_score >=", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreLessThan(String value) {
            addCriterion("pre_score <", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreLessThanOrEqualTo(String value) {
            addCriterion("pre_score <=", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreLike(String value) {
            addCriterion("pre_score like", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreNotLike(String value) {
            addCriterion("pre_score not like", value, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreIn(List<String> values) {
            addCriterion("pre_score in", values, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreNotIn(List<String> values) {
            addCriterion("pre_score not in", values, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreBetween(String value1, String value2) {
            addCriterion("pre_score between", value1, value2, "preScore");
            return (Criteria) this;
        }

        public Criteria andPreScoreNotBetween(String value1, String value2) {
            addCriterion("pre_score not between", value1, value2, "preScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreIsNull() {
            addCriterion("operation_score is null");
            return (Criteria) this;
        }

        public Criteria andOperationScoreIsNotNull() {
            addCriterion("operation_score is not null");
            return (Criteria) this;
        }

        public Criteria andOperationScoreEqualTo(String value) {
            addCriterion("operation_score =", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreNotEqualTo(String value) {
            addCriterion("operation_score <>", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreGreaterThan(String value) {
            addCriterion("operation_score >", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreGreaterThanOrEqualTo(String value) {
            addCriterion("operation_score >=", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreLessThan(String value) {
            addCriterion("operation_score <", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreLessThanOrEqualTo(String value) {
            addCriterion("operation_score <=", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreLike(String value) {
            addCriterion("operation_score like", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreNotLike(String value) {
            addCriterion("operation_score not like", value, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreIn(List<String> values) {
            addCriterion("operation_score in", values, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreNotIn(List<String> values) {
            addCriterion("operation_score not in", values, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreBetween(String value1, String value2) {
            addCriterion("operation_score between", value1, value2, "operationScore");
            return (Criteria) this;
        }

        public Criteria andOperationScoreNotBetween(String value1, String value2) {
            addCriterion("operation_score not between", value1, value2, "operationScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreIsNull() {
            addCriterion("report_score is null");
            return (Criteria) this;
        }

        public Criteria andReportScoreIsNotNull() {
            addCriterion("report_score is not null");
            return (Criteria) this;
        }

        public Criteria andReportScoreEqualTo(String value) {
            addCriterion("report_score =", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreNotEqualTo(String value) {
            addCriterion("report_score <>", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreGreaterThan(String value) {
            addCriterion("report_score >", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreGreaterThanOrEqualTo(String value) {
            addCriterion("report_score >=", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreLessThan(String value) {
            addCriterion("report_score <", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreLessThanOrEqualTo(String value) {
            addCriterion("report_score <=", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreLike(String value) {
            addCriterion("report_score like", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreNotLike(String value) {
            addCriterion("report_score not like", value, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreIn(List<String> values) {
            addCriterion("report_score in", values, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreNotIn(List<String> values) {
            addCriterion("report_score not in", values, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreBetween(String value1, String value2) {
            addCriterion("report_score between", value1, value2, "reportScore");
            return (Criteria) this;
        }

        public Criteria andReportScoreNotBetween(String value1, String value2) {
            addCriterion("report_score not between", value1, value2, "reportScore");
            return (Criteria) this;
        }

        public Criteria andLidIsNull() {
            addCriterion("lid is null");
            return (Criteria) this;
        }

        public Criteria andLidIsNotNull() {
            addCriterion("lid is not null");
            return (Criteria) this;
        }

        public Criteria andLidEqualTo(String value) {
            addCriterion("lid =", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidNotEqualTo(String value) {
            addCriterion("lid <>", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidGreaterThan(String value) {
            addCriterion("lid >", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidGreaterThanOrEqualTo(String value) {
            addCriterion("lid >=", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidLessThan(String value) {
            addCriterion("lid <", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidLessThanOrEqualTo(String value) {
            addCriterion("lid <=", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidLike(String value) {
            addCriterion("lid like", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidNotLike(String value) {
            addCriterion("lid not like", value, "lid");
            return (Criteria) this;
        }

        public Criteria andLidIn(List<String> values) {
            addCriterion("lid in", values, "lid");
            return (Criteria) this;
        }

        public Criteria andLidNotIn(List<String> values) {
            addCriterion("lid not in", values, "lid");
            return (Criteria) this;
        }

        public Criteria andLidBetween(String value1, String value2) {
            addCriterion("lid between", value1, value2, "lid");
            return (Criteria) this;
        }

        public Criteria andLidNotBetween(String value1, String value2) {
            addCriterion("lid not between", value1, value2, "lid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}